// #include <iostream>
// #include <string>
// using namespace std;
//
// class Girl
// {
// public:
//     Girl(int money):money(money)
//     {
//
//     }
// protected:
//     int money;
// };
//
// class Boy
// {
// public:
//     Boy(string name):name(name)
//     {
//
//     }
// protected:
//     std::string name;
// };
//
// class Son: public Boy,public Girl
// {
// public:
//     Son()=default;
//     Son(string name,int age):Boy(name),Girl(age)
//     {
//
//     }
//     void print()
//     {
//         cout << name << money << endl;
//     }
// protected:
// };
//
// void test_one()
// {
//     Son s("xiaowu",12);
//     s.print();
// }
//
// //多继承考点 构造和析构顺序
// class A
// {
// public:
//     A(int a):a(a)
//     {
//         cout << "A";
//     }
//     ~A()
//     {
//         cout << "~A";
//     }
// protected:
//     int a;
// };
//
// class B
// {
// public:
//     B(int b):b(b)
//     {
//         cout << "B";
//     }
//     ~B()
//     {
//         cout << "~B";
//     }
// protected:
//     int b;
// };
//
// class C
// {
// public:
//     C(int c):c(c)
//     {
//         cout << "C";
//     }
//     ~C()
//     {
//         cout << "~C";
//     }
// protected:
//     int c;
// };
//
// class D:public A,public B,public C
// {
// public:
//     //构造子类优先构造父类
//     //父类的构造顺序 只和继承顺序有关 和初始化参数无关
//     //构造顺序和析构顺序相反
//     D():A(1),B(2),C(3)
//     {
//         cout << "D";
//     }
//     ~D()
//     {
//         cout << "~D";
//     }
// };
//
// void test_two()
// {
//     D d;
// }
//
//
// int main()
// {
//     // test_one();
//     test_two();
//     return 0;
// }